/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Mercado.view;

import Mercado.model.Cadastro;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;/*

/**
 *
 * @author rafael
 */
public class Clientes_Panel extends JTabbedPane{
    
    private JTextField tfNome, tfEndereco, tfTelefone;
    private final JPanel pCadastrar, pListar;
    private Mercado.controller.Clientes_controller controller;
    
    public Clientes_Panel(Cadastro cad){
        controller = new Mercado.controller.Clientes_controller(cad);
        this.setTabPlacement(this.BOTTOM);
        pCadastrar  = abaCadastrar();
        pListar     = abaListar();
        this.addTab("Listar",pListar);
        this.addTab("Cadastrar",pCadastrar);
    }
    
    private JPanel abaCadastrar(){
        JPanel aba = new JPanel();
        aba.setLayout(null);
        
        JLabel lbNome, lbEndereco, lbTelefone, lbAviso;
        JButton btOk, btLimpa;
        
        lbNome      = new JLabel("Nome");
        lbEndereco  = new JLabel("Endereço");
        lbTelefone  = new JLabel("Telefone");
        lbAviso     = new JLabel("");
        tfNome      = new JTextField(20);
        tfEndereco  = new JTextField(20);
        tfTelefone  = new JTextField(20);
        
        btOk = new JButton("Ok");
        btLimpa = new JButton("Limpa");
        
        lbNome.     setBounds(10, 10, 40, 10);
        tfNome.     setBounds(100, 5, 500, 20);
        lbEndereco. setBounds(10, 40, 80, 10);
        tfEndereco. setBounds(100, 35, 500, 20);
        lbTelefone. setBounds(10, 70, 80, 10);
        tfTelefone. setBounds(100, 65, 500, 20);
        btLimpa.    setBounds(100, 100, 245, 20);
        btOk.       setBounds(355, 100, 245, 20);
        lbAviso.    setBounds(250, 130, 300, 10);
        
        aba.add(tfNome);
        aba.add(tfEndereco);
        aba.add(tfTelefone);
        aba.add(lbAviso);
        aba.add(lbEndereco);
        aba.add(lbTelefone);
        aba.add(lbNome);
        aba.add(btLimpa);
        aba.add(btOk);
        
        btOk.addActionListener((ActionEvent e) -> {
            controller.btCadastro(aba);
        });
        btLimpa.addActionListener((ActionEvent e) -> {
            controller.limpaCampo(aba);
        });
        
        aba.addComponentListener(new ComponentListener() {

            @Override
            public void componentShown(ComponentEvent e) {
                lbAviso.setText("");
            }

            @Override
            public void componentResized(ComponentEvent e) {}
            @Override
            public void componentMoved(ComponentEvent e) {}
            @Override
            public void componentHidden(ComponentEvent e) {}
        });
        
        return aba;
    }

    private JPanel abaListar() {
        JPanel lis = new JPanel();
        lis.setLayout(null);
        JLabel codigo   = new JLabel("Código");
        JLabel nome     = new JLabel("Nome");
        JLabel endereco = new JLabel("Endereço");
        JLabel telefone = new JLabel("Telefone");
        codigo.     setBounds(5,5,155,20);
        nome.       setBounds(160,5,155,20);
        endereco.   setBounds(315,5,155,20);
        telefone.   setBounds(470,5,155,20);
        lis.addComponentListener(new ComponentListener() {

            @Override
            public void componentShown(ComponentEvent e) {
                controller.atualizaTabela(lis);
            }

            @Override
            public void componentResized(ComponentEvent e) {}
            @Override
            public void componentMoved(ComponentEvent e) {}
            @Override
            public void componentHidden(ComponentEvent e) {}
        });
        lis.add(nome);
        lis.add(telefone);
        lis.add(codigo);
        lis.add(endereco);
        return lis;
    }

    public Cadastro getCad() {
        return controller.getCad();
    }

    public void setCad(Cadastro cad) {
        controller.setCad(cad);
    }
    
}
